unit TextureUnit;

interface
type
  TextureClass = class(TObject)
  private
    { Private declarations }
    Name : String;
    mDim : Integer; // dimension
    mNumLOD : Integer; // default is 1
    width, height, depth : Integer;
    data : String;
    mFormat : String;
  public
    (**
        The interface functions (Setters and Getters)
    *)
    procedure set_Name(Nam : String);
    procedure set_mDim(dim : Integer);
    procedure set_mNumLOD(numLOD : Integer);
    procedure set_width(w : Integer);
    procedure set_height(h : Integer);
    procedure set_depth(d : Integer);
    procedure set_data(d : String);
    procedure set_mFormat(f : String);

    function get_Name():String;
    function get_mDim(): Integer;
    function get_mNumLOD(): Integer;
    function get_width(): Integer;
    function get_height(): Integer;
    function get_depth(): Integer;
    function get_data():String;
    function get_mFormat():String;
    
    // The constructor
    Constructor Create(Nam : String; Dim, Num, w, h, d : Integer; dat, f : String);overload;
  end;

implementation

procedure TextureClass.set_Name(Nam : String);
begin
name := Nam;
end;

procedure TextureClass.set_mDim(dim : Integer);
begin
mDim := dim;
end;

procedure TextureClass.set_mNumLOD(numLOD : Integer);
begin
mNumLOD := numLOD;
end;

procedure TextureClass.set_width(w : Integer);
begin
width := w;
end;

procedure TextureClass.set_height(h : Integer);
begin
height := h;
end;

procedure TextureClass.set_depth(d : Integer);
begin
depth := d;
end;

procedure TextureClass.set_data(d : String);
begin
Data := d;
end;

procedure TextureClass.set_mFormat(f : String);
begin
mFormat := f;
end;

function TextureClass.get_Name():String;
begin
result := name;
end;

function TextureClass.get_mDim(): Integer;
begin
result := mDim;
end;

function TextureClass.get_mNumLOD(): Integer;
begin
result := mNumLOD;
end;

function TextureClass.get_width():Integer;
begin
result := width;
end;

function TextureClass.get_height():Integer;
begin
result := height;
end;

function TextureClass.get_depth():Integer;
begin
result := depth;
end;

function TextureClass.get_data() : String;
begin
result := data;
end;

function TextureClass.get_mFormat() : String;
begin
result := mFormat;
end;

Constructor TextureClass.Create(Nam : String; Dim, Num, w, h, d : Integer; dat, f : String);
begin
set_Name(nam);
set_mDim(dim);
set_mNumLOD(Num);
set_width(w);
set_height(h);
set_depth(d);
set_data(dat);
set_mFormat(f);
end;
    
end.
